package api

import (
	"pd/server/app/pd/api/v1/order"
	"pd/server/app/pd/api/v1/product"
	user "pd/server/app/pd/api/v1/user"
	config "pd/server/app/pd/config"
	"pd/server/plugin/auth"

	"github.com/gin-contrib/cors"
	"github.com/gin-gonic/gin"
)

func getUserRole() {

}

func registerRoutes(app *gin.Engine, conf *config.Config) {
	app.StaticFile("/favicon.ico", conf.AssetsPath()+"/favicon.ico")

	// cors
	config := cors.DefaultConfig()
	config.AllowAllOrigins = true
	config.AllowMethods = []string{"*"}
	config.AllowHeaders = []string{"*"}

	app.Use(cors.New(config))

	// JSON-REST API Version 1
	v1 := app.Group("/api")

	user.Login(v1.Group("/user"), conf)    // 登录
	user.SetPower(v1.Group("/user"), conf) // 添加菜单

	v1.Use(auth.JwtAuth())
	{
		userGroup := v1.Group("/user")
		user.GetUserResources(userGroup, conf) // 获取权限
		user.ModifyPassword(userGroup, conf)   // 修改密码

		// 员工管理
		employeeGroup := v1.Group("/web/employeeAccount")
		user.EmployeeList(employeeGroup, conf)   // 员工账号列表
		user.AddEmployee(employeeGroup, conf)    // 新增员工账号
		user.UpdateEmployee(employeeGroup, conf) // 编辑员工账号
		user.RemoveEmployee(employeeGroup, conf) // 删除员工账号

		// 商品管理
		productGroup := v1.Group("/web/product")
		product.Create(productGroup, conf) // 新增商品
		product.Update(productGroup, conf) // 编辑商品
		product.Delete(productGroup, conf) // 删除商品
		product.List(productGroup, conf)   // 商品列表

		// 订单管理
		orderGroup := v1.Group("/web/order")
		order.Create(orderGroup, conf)    // 新增订单
		order.Update(orderGroup, conf)    // 更新订单
		order.Delete(orderGroup, conf)    // 删除订单
		order.OrderList(orderGroup, conf) // 订单列表
	}
}
